package com.starlink.model.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.starlink.common.domain.BaseVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author zhanghong
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = false)
@ApiModel("书包订单响应模型")
public class SchoolbagOrderVO extends BaseVO implements Serializable {
    @ApiModelProperty("订单编号")
    private String orderNo;
    @ApiModelProperty("订单金额")
    private BigDecimal orderAmount;
    @ApiModelProperty("订单状态 1待支付 2已支付 3已退款 4退款中 5已取消")
    private Integer orderStatus;
    @ApiModelProperty("微信支付订单号")
    private String wxOrderNo;
    @ApiModelProperty("微信退款订单号")
    private String wxRefundNo;
    @ApiModelProperty("用户id")
    private Long userId;
    @ApiModelProperty("订阅人")
    private String userName;
    @ApiModelProperty("电话")
    private String mobile;
    @ApiModelProperty("用户openId")
    private String openId;
    @ApiModelProperty("地址id")
    private Long addressId;
    @ApiModelProperty("购买的书包类型id")
    private Long schoolbagId;
    @ApiModelProperty("购买的书包规格id")
    private Long schoolbagSpecId;
    @ApiModelProperty("所属分组id")
    private Long schoolbagGroupId;
    @ApiModelProperty("分组编号+")
    private String schoolbagGroupCode;
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("支付超时时间")
    private Date timeout;
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("取消时间")
    private Date cancelTime;
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("支付时间")
    private Date payTime;
    @ApiModelProperty("订单服务是否已完整 0否 1是")
    private Integer serviceFinish;

    @ApiModelProperty("书包详情")
    private SchoolbagVO schoolbag;
    @ApiModelProperty("收件人")
    private String receiver;
    @ApiModelProperty("省")
    private String province;
    @ApiModelProperty("市")
    private String city;
    @ApiModelProperty("区/县")
    private String area;
    @ApiModelProperty("详细地址")
    private String detail;

    @ApiModelProperty("书包名称")
    private String schoolbagName;
    @ApiModelProperty("书包号")
    private String schoolbagNo;
    @ApiModelProperty("当前书包")
    private Integer schoolbagCurrentNum;
    @ApiModelProperty("服务状态 0待发货(商家) 1已发货(商家) 2已收货 (用户) 3已发货(用户)  4已收货(商家)")
    private Integer schoolbagStatus;

    @ApiModelProperty("书包分期计划")
    private List<SchoolbagOrderReadRecordVO> readRecordVOList;
}
